Computer resources are typically monitored to evaluate performance and assess how certain resources perform with respect to different operations. A computer resource can be monitored by generating one or more metrics that indicate how often or much particular components of the resource are used over time. For example, the metrics typically collected for a server over time may be the average number of times a buffer is accessed, the number of times certain connections are used or idle, electrical power consumption, network throughput, hard disk space, and processor time. After multiple metrics have been collected, the metrics can be evaluated to assess the performance of individual components of a resource or the metrics can be used to track the performance of the resource. For example, the same metrics collected for various servers can be used to compare how different servers perform when executing the same set of instructions.
However, many resource monitoring applications use a large number of metrics which, in turn, creates problems for resource users. For example, a resource user trying to determine which of a large number of metrics to select in order to assess performance of the resource may be overwhelmed and have to guess as to which metrics to collect; the large number of metrics collected increases storage requirements and, therefore, increases the cost of evaluating a resource's performance; and, when monitoring multiple resources, the large number of metrics may reduce the scale of monitored resources and/or monitoring time when one of the resources is dedicated to monitoring the other resources. As a result, those working in the computer industry seek tools that can be used to reduce the number of metrics without sacrificing useful information that may be used to evaluate the performance of a resource.